home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / updates / update21.zoo / libg++ / WHATS.NEW < prev   
Text File  |  1992-06-03  |  4KB  |  103 lines

  1. read below for changes in libg++-2.0.19 from cygnus: the most
  2. significant atari specific user visible changes in libg++ are:
  3.  
  4.     clean up the binary flag stuff. define everything in terms of
  5.     manifest constant _IOS_BIN. Also, in ios define binary and
  6.     text flags so that in the spirit of fstreams one can say
  7.         ofstream output_bin("filename", ios::out|ios::binary)
  8.     instead of
  9.         ofstream output_bin("filename", ios::out_bin);
  10.     similarly
  11.         ifstream input_text("filename", ios::in|ios::text);
  12.     instead of
  13.         ifstream input_text("filename", ios::in_text);
  14.     etc..
  15.  
  16.     - in the open(name, int mode) was'nt setting bin
  17.       flag for atarist
  18.     - in the open(name, char *mode) allow "rb"/"wb" etc modes and set
  19.     flags appropriately for bin/text mode.
  20.  
  21.     - also in both the cases above set initial flags appropriately from
  22.      __default_mode__ (which is set by the C function _binmode(binp)).
  23.  
  24.       JUST in case it is'nt obvious: the atariST lib streams now fully
  25.     honor the _binmode() and __DEFAULT_BUFSIZ__  semantic semantics of
  26.     the atariST gcc C library, for all <iostreams> based streams and
  27.     derivatives thereof. In case you are not familiar
  28.  
  29.     - calling _binmode(1): will cause all subsequent opens of any streams
  30.     to be opened in binary mode (streams are opened in text mode normally).
  31.     in any one individual call you can override the default. for example
  32.  
  33.  
  34.         fopen("foo", "r");    open for read in text mode
  35.     ifstream foo("foo", ios::read)    open for read in text mode
  36.  
  37.     _binmode(1);
  38.  
  39.         fopen("foo", "r");    open for read in binary mode
  40.     fopen("foo", "rt");    open for read in text mode
  41.     ifstream foo("foo", ios::read)    open for read in binary mode
  42.     ifstream foo("foo", ios::read|ios::text) open for read in text mode
  43.     ifstream foo("foo", ios::read|ios::binary) open for read in binary mode
  44.     ifstream foo("foo", "r") open for read in binary mode
  45.     ifstream foo("foo", "rt") open for read in text mode
  46.         
  47.     _binmode(0);
  48.     ifstream foo("foo", "r") open for read in text mode
  49.     ... and so on
  50.  
  51.     
  52.       - __DEFAULT_BUFSIZ__ unless overridden by the user defines the default
  53.     size of stream buffers, both in the C library and the G++ library.
  54.     It is initialized to BUFSIZ (see stdio.h) if it is not defined in
  55.     the user application.
  56.  
  57. *** Changes in libg++ version 2.1:
  58.  
  59. * "Class" include files in g++-include moved to src
  60.  
  61. Those include files that are just wrappers around C header files
  62. (e.g. signal.h) remain in g++-include, while the header files
  63. that are specific to libg++ (or C++) have been moved to src.
  64. If your system includes "C++-ready" C header files (as in SVR4 or
  65. Linux), you don't need to use the wrappers in g++-include.
  66.  
  67. * Portability
  68.  
  69. A lot of effort has gone into makeing libg++ more portable.
  70. Code that depends on internals of "traditional" implementations
  71. had been made more portable.  The 'libiberty' library is incorporated
  72. into libg++; this supplies (if needed) many functions that may be
  73. missing on particular hosts.
  74.  
  75. * Auto-configuration
  76.  
  77. New scripts automaticly figure out various properties of the
  78. system (and compiler) you use.  While these scripts are not
  79. foolproof, the intent is that on most systems you will no longer
  80. have to edit Makefiles or build special configuration files.
  81.  
  82. * Iostream bug-fixes
  83.  
  84. There have been numerous bug-fixes and enhancements in the
  85. iostream code.  Lots of rough edges in the streambuf and filebuf
  86. classes have been fixed.
  87.  
  88. There are still some rough edges of the protocol (as in what the
  89. streambuf class should do, and what sub-classes such as filebuf
  90. should handle).
  91.  
  92.  
  93. * iostream enhancements for lexing/parsing.
  94.  
  95. You can now create a 'streammaker' object, which is a "remembered"
  96. position is a streambuf.  Later, you can backtrack to that position.
  97. This is supposed to work, even if the streambuf is unbuffered and
  98. otherwise unseekable, because the streambuffer never throws away
  99. any data following an extant streammarker.  This feature will be
  100. used to build various scanning/parsing facilities (with backup).
  101. (See iostream.texi for an example.)
  102.  
  103.